www.gusucode.com > 支持向量机工具箱 - LIBSVM OSU_SVM LS_SVM源码程序 > 支持向量机工具箱 - LIBSVM OSU_SVM LS_SVM\stprtool\generalp\crossval.m

    function [itrn,itst]=crossval(num_data,num_folds)
% CROSSVAL partions data for cross-validation.
% [itrn,itst]=crossval(num_data,num_folds)
%
% Inputs:
%  num_data [int] number of data.
%  num_folds [int] number of splitting (folders) to traning
%       and testing part.
%
% Output:
%  itrn{i} [ints] indices of training data.
%  itst{i} [ints] indices of testing data.
%

% Modif:
%  29-oct-2002, VF

% random partitioning 
inx=randperm(num_data);

itrn=cell(1,num_folds);
itst=cell(1,num_folds);

num_column=ceil(num_data/num_folds);
part=[1:num_data zeros(1,num_column*num_folds-num_data)];
part=reshape(part,num_column,num_folds)';

for i=1:num_folds,
  tst_inx=part(i,:);
  tst_inx=tst_inx(find(tst_inx));
  trn_inx=part(find([1:num_folds]~=i),:);
  trn_inx=trn_inx(find(trn_inx));

  itrn{i}=inx(trn_inx);
  itst{i}=inx(tst_inx);
end

return;